{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using Theano backend.\n",
      "Using gpu device 0: GeForce GTX 960 (CNMeM is disabled, cuDNN 4007)\n"
     ]
    }
   ],
   "source": [
    "import numpy \n",
    "%matplotlib inline\n",
    "\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from keras.models import Sequential\n",
    "from keras.layers.core import Dense, Activation, Lambda\n",
    "from keras.optimizers import Adam\n",
    "from keras import backend as K\n",
    "\n",
    "\n",
    "numpy.random.seed(0)\n",
    "\n",
    "mu = 4\n",
    "sigma = 2\n",
    "\n",
    "# use GAN to generate gaussian distribution from uniform distribution\n",
    "batch_size = 128\n",
    "data_dim = 1\n",
    "mid_dim = 6\n",
    "sample_dim = 20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# plot states\n",
    "def plot_states(D, G):\n",
    "    f,ax=plt.subplots(1)\n",
    "    n = 50\n",
    "    # p_data\n",
    "    n_dist = numpy.random.normal(mu, sigma, 1000).astype('float32')\n",
    "    u_dist = numpy.random.uniform(-sigma, sigma, (1000, sample_dim)).astype('float32')\n",
    "    gn_dist = G((u_dist,))[:,0]\n",
    "    ax.hist(n_dist, n, label='p_data', normed=True)\n",
    "    ax.hist(gn_dist, n, label='p_g', normed=True)\n",
    "        \n",
    "    dx = []\n",
    "    xx = []\n",
    "    for i in numpy.arange(mu-sigma*4, mu+sigma*4, 0.5):\n",
    "        # Predict of real data\n",
    "        tmp_n = n_dist[numpy.where((n_dist <= i+1) & (n_dist > i))]\n",
    "        if len(tmp_n) != 0:\n",
    "            tmp_d = D.predict(tmp_n)[:,0].sum() \n",
    "            tmp_m = tmp_n.shape[0]\n",
    "        else:\n",
    "            tmp_d = 0\n",
    "            tmp_m = 0\n",
    "                 \n",
    "        # Predict of fake data\n",
    "        tmp_n = gn_dist[numpy.where((gn_dist <= i+1) & (gn_dist > i))]\n",
    "        if len(tmp_n) != 0:\n",
    "            tmp_d += D.predict(tmp_n)[:,0].sum() \n",
    "            tmp_m += tmp_n.shape[0]\n",
    "        if tmp_m > 0:\n",
    "            dx.append(tmp_d / tmp_m)\n",
    "            xx.append(i)\n",
    "    ax.plot(xx, dx, label='d', marker='*')\n",
    "    plt.legend()\n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYpRggQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd00c056438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# simple mlp discriminator\n",
    "discriminator = Sequential()\n",
    "discriminator.add(Dense(mid_dim, input_dim=data_dim, activation='tanh'))\n",
    "discriminator.add(Dense(mid_dim, activation='tanh'))\n",
    "discriminator.add(Dense(1, activation='sigmoid'))\n",
    "\n",
    "# simple mlp generator\n",
    "generator = Sequential()\n",
    "generator.add(Dense(mid_dim, input_dim=sample_dim, activation='tanh'))\n",
    "generator.add(Dense(mid_dim, activation='tanh'))\n",
    "generator.add(Dense(data_dim, activation='tanh'))\n",
    "generator.add(Lambda(lambda x: x * 4 * sigma + mu)) # scale\n",
    "sample_fake = K.function([generator.input], generator.output)\n",
    "\n",
    "\n",
    "discriminator.trainable = False\n",
    "generator.add(discriminator)\n",
    "\n",
    "# training setting\n",
    "opt_g = Adam(lr=.0001) \n",
    "generator.compile(loss='binary_crossentropy', optimizer=opt_g)\n",
    "opt_d = Adam(lr=.0002)\n",
    "discriminator.trainable = True\n",
    "discriminator.compile(loss='binary_crossentropy', optimizer=opt_d)\n",
    "\n",
    "# plot initial state\n",
    "# it's important to understand Figure 1 in \n",
    "# Goodfellow, Ian, et al. \"Generative adversarial nets.\" Advances in Neural Information Processing Systems. 2014.\n",
    "plot_states(discriminator, sample_fake) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd0230c9898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# pre-train the discriminator, not necessary in this simple example\n",
    "n_dist = numpy.random.normal(mu, sigma, batch_size * 100).astype('float32')\n",
    "u_dist = numpy.random.uniform(-sigma, sigma, (batch_size * 100, sample_dim)).astype('float32')\n",
    "gn_dist = sample_fake((u_dist,))[:,0]\n",
    "true_n_fake = numpy.hstack([n_dist, gn_dist])\n",
    "\n",
    "y_batch = numpy.hstack([numpy.ones((batch_size * 100, )),\n",
    "                             numpy.zeros((batch_size * 100, ))])\n",
    "discriminator.fit(true_n_fake, y_batch, batch_size=batch_size, nb_epoch=20, verbose=0)\n",
    "\n",
    "# after pre-training, the discriminator should converge to D*\n",
    "# as described in the paper\n",
    "plot_states(discriminator, sample_fake) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nCPT/A13dxFb6KPx3AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd00728b5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n8GE/AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcfff1284e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nQBIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcffe884f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcffe722ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nSF5Qcs8uLdYhIiItUnIXEYkgJXcRkQhSchcRiSAldxHJmuKS4vZdZq+kONdPsWBotIyItFnq6A4z\ng8p2fMBKIj06R6NlRERa0ZZl9u6+++7GZfYWLlxILBZj06ZNHRRxdim5i0hkPfbYYzz33HO8/fbb\nvPnmm3znO99ptu2qVav43ve+xy9/+UveeustXnjhhYJZlCQdJXcRiawZM2YwcOBAevbsya233spP\nf/rTZtsuXbqUqVOnMmzYME488UTmzZvXgZFmn5K7iERWpsvsDR48uHF78ODBBV3fV3IXkcjKdJm9\n2traxu0tW7aoLCMiko8eeOABtm3bxp49e1iwYAETJ05stu2ECRNYtGgR69evZ//+/Xz729/uwEiz\nT/O5i0jW9B/Un12Vu9r1+Jm46qqr+OIXv8iOHTv40pe+xK233tps27FjxzJz5kw+//nPU1RUxO23\n387ixYvp0qXLsYadExrnLiJtls+zQh7rSkzr16/njDPO4ODBg8RiHVPk0Dh3EZF28OSTT1JXV8fe\nvXuZNWsW48eP77DEnm2FGbWISCuaW2avW7dudO/e/ahbRUUFAA8//DAnn3wyH/vYx+jUqRMPPvhg\nR4edNSrLiEib5XNZphCpLCMiIi1SchcRiSAldxGRCNI4dxFps9LS0oK+ijPflJaWZu1YOqEqIpLn\ndEJVREQAJXcRkUgKldzNbKyZrTezDWY2q4V2/8vM4mY2MnshiohIplpN7mYWA+4HxgAjgCvNbFia\ndl2BGcCL2Q5SREQyE6bnfjaw0d1r3L0OWAJcmqbdt4G7gINZjE9ERNogTHIfBGxN2q5N7GtkZp8E\nStx9RRZjExGRNgozzj3d8JvG8YwWDHL9LjCllf8DQGVlZeP98vJyysvLQ4QgInL8qK6uprq6+piO\n0eo4dzP7DFDp7mMT27MBd/e7EtvdgbeAfQRJvRjYDYx395dTjqVx7iIiGWrLOPcwyb0IeBMYDewA\n/hu40t3faKb9/wNucvdX0vxMyV1EJEPtchGTu9cD04FngdeAJe7+hpnNN7Nx6f4LLZRlRESk/Wn6\nARGRPKfpB0REBFByFxGJJCV3EZEIUnIXEYkgJXcRkQhSchcRiSAldxGRCFJyFxGJICV3EZEIUnIX\nEYkgJXcRkQhSchcRiSAldxGRCFJyFxGJICV3EZEIUnIXEYkgJXcRkQhSchcRiSAldxGRCFJyFxGJ\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcffe549748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nzf7CCy94RUWFv/feez5ixAi/6aabEvp9RmxPfnJP1pLU5F6tqqrKn/nXf/WZHTu6g8/s0MGXT5vm\nVY18Q4pI86V7cn/ooYdq15955hkfOHBgzPaTJ0/2WbNm1a5v3LixXnKPdOONN/r06dPd/ZPkXllZ\nGXP/v/vd7/yss85qMOZkJveMv0LVzLDTTuNwTg7TBw/mEGD/8z9Y374wdiw88QQcOHDc89x1kZRI\n2OXn59c+LigoYOfOyNOFn9i5cyd96wzWKCgoqJcfVq9ezYUXXkjPnj055ZRTWLBgAe+9F3vU9z/+\n8Q/GjRtHfn4+p5xyChMmTGiwfbJlfHKHOrfjWr+eixYtYvsVV8CWLTBmDJSWQp8+wQnZZcvg0CFA\nF0mJtAXbt38yinvr1q307t07ZttevXod177u4Izx48dz2WWXsWPHDvbt28e1115bm/yjDeKYNWsW\nWVlZrF27ln379rFo0aLW7Uwm2tVvzkILlGXi8o9/uC9Y4D5ypC/s0MFHd+nit/TurRq9SDNFfqZJ\ns7LMZz/7WS8vL/f333/fv/SlL/ns2bNjtl++fLn36tXL161b5wcOHPAJEybUK8vk5ub6Y4895u7u\nq1ev9p49e/p3vvMdd3c/ePCg5+Tk+MaNG2v3d+WVV/qUKVO8srLSy8vL/YILLvC+ffsm9PuM2J5Y\nvk30Cc1ZUpbc66jatcufueoqn9m+vTv4zG7dfPkTT9Q7ESIi8Yn8TOfmFlQn+JZZcnML4o6tf//+\nPm/ePB8yZIh37drVJ02a5IcOHWrwOXfffbfn5eV5nz59vLS0tF5yf/LJJ72goMC7dOniF198sU+b\nNq02ubu733777d6jRw/v2rWrr1692t944w0/++yzvXPnzn7mmWf6/PnzWzW5t8nb7K1YupRnJ0/G\nunWjavt2LsrPp+jXv4aLLgKNkReJWzrfZm/AgAE8/PDDXHjhhakOJW66zV4z1dbo33mHi554gu0j\nRsAPfwiFhbBqVarDExFptjaZ3K+ZNYuisWMxM4q++U2ufuwxeO01mDgRrrgCLr8c1q9PdZgi0gzR\nTnLOnTuXzp0706VLl3rL6NGjUxBhy2qTZZkGHToE998PP/sZXHIJlJRAfj7umt5AJFI6l2Uykcoy\nLaljR/jRj2DjRujRI5jL5sc/5tlHH9XQSRHJGOq5N2LR3XezeN48hn30EXdWVTF70CBebdeO4htu\n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\n4rbSUizG+43Z/vLL639xVD8ef/Qo3f/rv1h5553Yrl1UdevG1KlTKfr85+Ho0eDv5vBhOHIEDh9m\n/Gc+Q/devVj5hz8E7/fQIaaefz5Fx47BE08EX2TSIsrKyigrK2veThrr2hOUZVbUWT+uLBPRPgvY\nF+NnzTtmkYTVjsbJzw/KOJ/6lC8fP96rrrrKfcQI99693Tt2dB861P2yy3zhV7/qo3v18lvy84ND\n/f79ffRpp/nCe+91b6BskbRD/WPH3D/6yH3XLvfNm33hrbf66P79/ZY+fYJ4evb00T17+sKiIvcp\nU9yvuMJ95Ej3s85yHzDAq7p08WfAZ5oF77ddO18+dKhXXXaZ+6RJ7tOnu99xh/t993nVY48FJa6e\nPYO2vXv78v/4D686erTRuG8aMsR/EMf7TbT9Q3fd5SuWLvWqqipfsXSp//vcuUltn+z49ZlOrli/\nT5pQlomn574GGGhmBcAuoBgYV7eBmeW5e81p7EuBdc37ypFkqR2N8+GHTB8yJOjdXX55/d7ggQOw\neTNs2sT4jRvpfvQoK1etCnpr27cz9cQTKZo5E266KeihnnQSdOoEnTqxaP9+Fu/ZwzBg/oEDwZHB\nd79L8YABTOjbF6qq6i2Ltm+vLVXMP3yY2ePGBb3l9u2ZUFkZ9CBrXuPEExl/4ol0z85m5a5dQTwH\nDjD1wgspOu886NYtmIWz5t+uXbFu3bAXXuDw1Vd/0pudMydq77e25/urX33yu+nUKShpxBD1qKkB\nibaPeQFcktq3dPySPuKa8tfMRgH3EvTKH3b3eWY2B1jj7r83s7uAS4AKYC/wPXc/bhIV1dxT49/n\nzqXfaafV+4BePXNmzPbH1fRratGVlUE9+eOPgy+Ejz/G9+9nxYoVrFywgLnvv8+sT32KEZMmUfTF\nL2LZ2UG5p87iZqxYuZKVv/41c999l1l5eYy47TaKvvlNrFOnoN4bUaaJGU8S3m+ivxupr3///mzd\nujXVYYRGQUEBW7ZsOW57U2ruLTomNXJBh3AZIdWH+s2NR6RGppW5YqElRsskk3ru4ZRo71e9ZQmL\n1vrbb0rPXcldRCTN6U5MIiICKLmLiISSkruISAgpuYuIhJCSu4hICCm5i4iEkJK7iEgIKbmLiISQ\nkruISAgpuYuIhJCSu4hICCm5i4iEkJK7iEgIKbmLiISQkruISAgpuYuIhJCSu4hICCm5i4iEkJK7\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd00728b3c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(2000):\n",
    "    if i % 400 == 0:\n",
    "        plot_states(discriminator, sample_fake) \n",
    "    for k in range(10):\n",
    "        n_dist = numpy.random.normal(mu, sigma, batch_size).astype('float32')\n",
    "        u_dist = numpy.random.uniform(-sigma, sigma, (batch_size, sample_dim)).astype('float32')\n",
    "        gn_dist = sample_fake((u_dist,))[:,0]\n",
    "        true_n_fake = numpy.hstack([n_dist, gn_dist])\n",
    "        y_batch = numpy.hstack([numpy.ones((batch_size, )),\n",
    "                             numpy.zeros((batch_size, ))])        \n",
    "        discriminator.train_on_batch(true_n_fake, y_batch)\n",
    "                          \n",
    "        \n",
    "    all_fake = numpy.ones((batch_size, )).astype('float32')\n",
    "    u_dist = numpy.random.uniform(-sigma, sigma, (batch_size, sample_dim)).astype('float32')\n",
    "    generator.train_on_batch(u_dist, all_fake)\n",
    "    \n",
    "    \n",
    "# after training, the discriminator should not be able to distinguish two distributions\n",
    "# as described in the paper\n",
    "plot_states(discriminator, sample_fake) \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Thanks to\n",
    "# 1. https://github.com/ericjang/genadv_tutorial/blob/master/genadv1.ipynb\n",
    "# 2. https://github.com/EderSantana/seya/blob/master/examples/wip-GAN.ipynb"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
